<?php

/**
 * Part of the Fuel framework.
 *
 * @package    Fuel
 * @version    1.0
 * @author     Fuel Development Team
 * @license    MIT License
 * @copyright  2010 - 2012 Fuel Development Team
 * @link       http://fuelphp.com
 */

/**
 *
 * @return full current url
 */
if (! function_exists('current_url')) {

    function current_url ($hash = '')
    {
        if (! empty($hash)) {
            $hash = '#' . $hash;
        }
        
        return 'http' . ((isset($_SERVER['HTTPS'])) ? 's' : '') . '://' . $_SERVER['SERVER_NAME'] . (($_SERVER['SERVER_PORT'] != "80") ? ':' . $_SERVER['SERVER_PORT'] : '') . $_SERVER['REQUEST_URI'] . $hash;
    }
}

/**
 * Get time ago by timestamp
 *
 * @param timestamp $time            
 * @return string
 */
if (! function_exists('time_ago')) {

    function time_ago ($time)
    {
        $ts = time() - (int) $time;
        
        if ($ts > 604800)
            $val = round($ts / 604800, 0) . ' week';
        else 
            if ($ts > 86400)
                $val = round($ts / 86400, 0) . ' day';
            else 
                if ($ts > 3600)
                    $val = round($ts / 3600, 0) . ' hour';
                else 
                    if ($ts > 60)
                        $val = round($ts / 60, 0) . ' minute';
                    else
                        $val = $ts . ' second';
        
        if ($val > 1)
            $val .= 's';
        return $val . " ago";
    }
}

/**
 * Get time and date bt timestamp
 *
 * @param timestamp $time            
 * @return string
 */
if (! function_exists('__date')) {

    function __date ($timestamp)
    {
        return date('H\hi d-m-Y', $timestamp);
    }
}

function vi2en ($str)
{
    $arrTViet = array(
            "à",
            "á",
            "ạ",
            "ả",
            "ã",
            "â",
            "ầ",
            "ấ",
            "ậ",
            "ẩ",
            "ẫ",
            "ă",
            "ằ",
            "ắ",
            "ặ",
            "ẳ",
            "ẵ",
            "è",
            "é",
            "ẹ",
            "ẻ",
            "ẽ",
            "ê",
            "ề",
            "ế",
            "ệ",
            "ể",
            "ễ",
            "ì",
            "í",
            "ị",
            "ỉ",
            "ĩ",
            "ò",
            "ó",
            "ọ",
            "ỏ",
            "õ",
            "ô",
            "ồ",
            "ố",
            "ộ",
            "ổ",
            "ỗ",
            "ơ",
            "ờ",
            "ớ",
            "ợ",
            "ở",
            "ỡ",
            "ù",
            "ú",
            "ụ",
            "ủ",
            "ũ",
            "ư",
            "ừ",
            "ứ",
            "ự",
            "ử",
            "ữ",
            "ỳ",
            "ý",
            "ỵ",
            "ỷ",
            "ỹ",
            "đ",
            "À",
            "Á",
            "Ạ",
            "Ả",
            "Ã",
            "Â",
            "Ầ",
            "Ấ",
            "Ậ",
            "Ẩ",
            "Ẫ",
            "Ă",
            "Ằ",
            "Ắ",
            "Ặ",
            "Ẳ",
            "Ẵ",
            "È",
            "É",
            "Ẹ",
            "Ẻ",
            "Ẽ",
            "Ê",
            "Ề",
            "Ế",
            "Ệ",
            "Ể",
            "Ễ",
            "Ì",
            "Í",
            "Ị",
            "Ỉ",
            "Ĩ",
            "Ò",
            "Ó",
            "Ọ",
            "Ỏ",
            "Õ",
            "Ô",
            "Ồ",
            "Ố",
            "Ộ",
            "Ổ",
            "Ỗ",
            "Ơ",
            "Ờ",
            "Ớ",
            "Ợ",
            "Ở",
            "Ỡ",
            "Ù",
            "Ú",
            "Ụ",
            "Ủ",
            "Ũ",
            "Ư",
            "Ừ",
            "Ứ",
            "Ự",
            "Ử",
            "Ữ",
            "Ỳ",
            "Ý",
            "Ỵ",
            "Ỷ",
            "Ỹ",
            "Đ"
    );
    
    $arrKoDau = array(
            "a",
            "a",
            "a",
            "a",
            "a",
            "a",
            "a",
            "a",
            "a",
            "a",
            "a",
            "a",
            "a",
            "a",
            "a",
            "a",
            "a",
            "e",
            "e",
            "e",
            "e",
            "e",
            "e",
            "e",
            "e",
            "e",
            "e",
            "e",
            "i",
            "i",
            "i",
            "i",
            "i",
            "o",
            "o",
            "o",
            "o",
            "o",
            "o",
            "o",
            "o",
            "o",
            "o",
            "o",
            "o",
            "o",
            "o",
            "o",
            "o",
            "o",
            "u",
            "u",
            "u",
            "u",
            "u",
            "u",
            "u",
            "u",
            "u",
            "u",
            "u",
            "y",
            "y",
            "y",
            "y",
            "y",
            "d",
            "A",
            "A",
            "A",
            "A",
            "A",
            "A",
            "A",
            "A",
            "A",
            "A",
            "A",
            "A",
            "A",
            "A",
            "A",
            "A",
            "A",
            "E",
            "E",
            "E",
            "E",
            "E",
            "E",
            "E",
            "E",
            "E",
            "E",
            "E",
            "I",
            "I",
            "I",
            "I",
            "I",
            "O",
            "O",
            "O",
            "O",
            "O",
            "O",
            "O",
            "O",
            "O",
            "O",
            "O",
            "O",
            "O",
            "O",
            "O",
            "O",
            "O",
            "U",
            "U",
            "U",
            "U",
            "U",
            "U",
            "U",
            "U",
            "U",
            "U",
            "U",
            "Y",
            "Y",
            "Y",
            "Y",
            "Y",
            "D"
    );
    
    return str_replace($arrTViet, $arrKoDau, $str);
}

function nice_url ($string, $delimiter = '-')
{
    $string = vi2en($string);
    
    $string = strip_tags($string);
    // Preserve escaped octets.
    $string = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '---$1---', $string);
    // Remove percent signs that are not part of an octet.
    $string = str_replace('%', '', $string);
    // Restore octets.
    $string = preg_replace('|---([a-fA-F0-9][a-fA-F0-9])---|', '%$1', $string);
    
    $string = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
    $string = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $string);
    $string = strtolower(trim($string, $delimiter));
    $string = preg_replace("/[\/_|+ -]+/", $delimiter, $string);
    
    // kill entities
    $string = preg_replace('/&.+?;/', '', $string);
    $string = str_replace('.', $delimiter, $string);
    $string = preg_replace('/[^%a-z0-9 _-]/', '', $string);
    $string = preg_replace('/\s+/', $delimiter, $string);
    $string = preg_replace('|-+|', $delimiter, $string);
    $string = trim($string, $delimiter);
    
    $string = vi2en($string);
    
    return $string;
}